# -*- coding: utf-8 -*-
# 操作内容：
# @Software: PyCharm
# @File: file_load.py
# @Author: 一碗好酒（张智）
# @E-mail: 1473658931@qq.com, 
# @Time: 7月 09, 2021
# ---
'''
读取yml和Excel
'''
import json

import yaml
import pandas
from setting import DIR_NAME


def read_yaml(filename):
    '''
    读取yaml文件 pip pyyaml
    :return:
    1.获取当前项目的绝对路径
    2.跟读取的数据进行拼接成绝对路径

    '''

    with open(DIR_NAME + filename, 'r', encoding='utf-8') as f:
        # 读取yml文件
        context = yaml.load(f, Loader=yaml.FullLoader)
        return context



def read_excel(filename, sheet_name):
    '''
    :param sheet_name:
    :param filename: 读取文件的名字
    :return:
    '''
    pd = pandas.read_excel(DIR_NAME + filename, sheet_name=sheet_name,
                           # 如果遇到空的单元格，默认返回nan，python没有办法解析。
                           # keep_default_na=False 返回空字符串。
                           keep_default_na=False, engine='openpyxl')
    # 获取总行数和总列数
    lines_count = pd.shape[0] #总行数不包括头部第一行
    col_count = pd.columns.size  #总的列数
    #获取单元格的是从开始的
    data = []
    #  父循环控制行数
    for row in range(lines_count):
        line = [] #存放同一行，不同列的数据
        # 子循环控制列数
        for col in range(col_count):
            text = pd.iloc[row,col]
            # 判斷如果列數==1的時候，讀取字符串text轉換成字典，
            if col ==1:
                text = json.loads(text) #將json字符串轉換成字典
            line.append(text)
        data.append(line)
    return data


    #在获取单元格的时候，索引是从0开始的。


if __name__ == '__main__':
    # print(read_yaml()['buynow'][0])
    # print(read_yaml('/data/mtxshop.yml')['buynow'][0])
    # data = read_excel('/data/buyer.xlsx','立即购买')
    # print(data)
    print(read_yaml('/config/db.yml')['test'])
    print(read_yaml('/config/db.yml')['test'])
